package cn.ulyer.common.jpa.service;

import cn.ulyer.common.jpa.repository.BaseRepository;
import cn.ulyer.common.utils.PageResult;
import org.springframework.data.domain.Pageable;
import org.springframework.lang.Nullable;

public interface BaseService  <T, ID> extends BaseRepository<T,ID> {

    /**
     * queryModel 为 object类型主要是为实体可能不满足查询需求 比如实体之外字段 vo
     * @param pageable
     * @param queryModel
     * @return
     */
    PageResult<?> page(Pageable pageable,@Nullable Object queryModel);

    /**
     * 反射创建query  该方式不会触发审计功能
     * 修改时间为手动赋值 继承abstractBaseModel  {@link cn.ulyer.common.model.AbstractBaseModel}即可
     * @param entity
     * @return
     */
    boolean updateById(T entity);

}
